width: width,
height: APPDISPLAY_HEIGHT});
this._group.connect('button-press-event', function(group, e) {
- me.emit('launch');
+ me.emit('activate');
return true;
});
this._bg = new Clutter.Rectangle({ color: APPDISPLAY_BACKGROUND_COLOR,
y: this._name.height + 4})
this._group.add_actor(this._comment);
this.actor = this._group;
+},
+launch: function() {
+ this._appinfo.launch([], null);
+},
+appinfo: function () {
+ return this._appinfo;
}
}
Signals.addSignalMethods(AppDisplayItem.prototype);
let group = item.actor;
group.destroy();
delete this._displayed[appid];
+
},
_removeAll: function() {
let appinfo = this._appset[appid];
let name = appinfo.get_name();
- let index = 0; for (i in this._displayed) { index += 1; }
+ let index = 0; for (i in this._displayed) { index += 1; };
let appdisplay = new AppDisplayItem(appinfo, this._width);
- appdisplay.connect('launch', function() {
- appinfo.launch([], null);
+ appdisplay.connect('activate', function() {
+ appdisplay.launch();
me.emit('activated');
});
let group = appdisplay.actor;
this._redisplay();
},
+searchActivate: function() {
+ let displayedActors = this._grid.get_children();
+ if (displayedActors.length != 1)
+ return;
+ let selectedActor = displayedActors[0];
+ let selectedMenuItem = null;
+ for (appid in this._displayed) {
+ let item = this._displayed[appid];
+ if (item.actor == selectedActor) {
+ selectedMenuItem = item;
+ break;
+ }
+ }
+ log("selected " + selectedMenuItem);
+ if (!selectedMenuItem)
+ return;
+
+ selectedMenuItem.launch();
+ this.emit('activated');
+},
+
show: function() {
this._redisplay();
this._grid.show();
this._group.add_actor(this._searchEntry);
global.stage.set_key_focus(this._searchEntry);
this._searchQueued = false;
- this._searchEntry.connect('notify::text', function (se, prop) {
+ this._searchActive = false;
+ this._searchEntry.connect('notify::text', function (se, prop) {
if (me._searchQueued)
return;
Mainloop.timeout_add(250, function() {
+ let text = me._searchEntry.text;
me._searchQueued = false;
- me._appdisplay.setSearch(me._searchEntry.text);
+ me._searchActive = text != '';
+ me._appdisplay.setSearch(text);
return false;
});
});
+ this._searchEntry.connect('activate', function (se) {
+ log("activate " + me._searchActive);
+ if (!me._searchActive)
+ return false;
+ me._appdisplay.searchActivate();
+ return true;
+ });
let appsText = new Clutter.Label({ color: SIDESHOW_TEXT_COLOR,
font_name: "Sans Bold 14px",